//用户相关的小仓库
import { defineStore } from 'pinia'
import { reqLogin } from '../../api/login'
import { ref, reactive } from 'vue'
import { useLocalStorage } from '@vueuse/core' // 使用 @vueuse/core 提供的 useLocalStorage
//创建用户相关的小仓库
export const useUserStore = defineStore('user', () => {
    const token = ref('') //定义token
    const userinfo = reactive({
        avatar: '',
        name: ''
    })

    // // 使用 useLocalStorage 来持久化 token 和 userinfo
    // const persistedToken = useLocalStorage('user_token', token)
    // const persistedUserInfo = useLocalStorage('user_info', userinfo)

    // 用户登录方法
    const userLogin = async (data) => {
        try {
            const res = await reqLogin(data)
            if (res.data.code === 10000) {
                token.value = res.data.data.token
                userinfo.avatar = res.data.data.userInfo.avatar
                userinfo.name = res.data.data.userInfo.name
                //本地缓存
                localStorage.setItem('pz_token',res.data.data.token)
                localStorage.setItem('userInfo',res.data.data.userInfo)   

            } else {
                throw new Error('登录失败')
            }
        } catch (error) {
            console.error('登录请求出错:', error)
            throw error
        }
    }

        // // 从本地存储中恢复数据
        // const restoreFromLocalStorage = () => {
        //     const storedToken = localStorage.getItem('user_token')
        //     const storedUserInfo = JSON.parse(localStorage.getItem('user_info'))
        //     if (storedToken) {
        //         token.value = storedToken
        //     }
        //     if (storedUserInfo) {
        //         Object.assign(userinfo, storedUserInfo)
        //     }
        // }
    
        // // 在 store 创建后立即恢复数据
        // restoreFromLocalStorage()

    return { token, userLogin, userinfo }
},
 {
    persist: true
        
    }
)